#include "led.h"
#include "time.h"

uint16_t led_time = 500;
const uint16_t LedPins[LED_NUMBER] =
{
    GPIO_PIN_10,
    GPIO_PIN_1,
    GPIO_PIN_2
};
static tsTimeType TimeLeds[LED_NUMBER];
static teLedTaskStatus LedTaskStatus[LED_NUMBER];
void LedOn(teLedNums LedNums)
{
    HAL_GPIO_WritePin(GPIOC,LedPins[LedNums],GPIO_PIN_RESET);
}

void LedOff(teLedNums LedNums)
{
    HAL_GPIO_WritePin(GPIOC,LedPins[LedNums],GPIO_PIN_SET);
}
void LedInit(void)
{
    int i;
    for(i = 0; i < LED_NUMBER; i++)
    {
        LedOff(i);
    }
}

void SetLedRun(teLedNums LedNums,uint16_t time)
{
    LedTaskStatus[LedNums] = LED_RUN;
	led_time = time;
}
void LedTask(void)
{
    int i;
    for(i = 0; i < LED_NUMBER; i++)
    {

        if(LedTaskStatus[i] == LED_RUN)
        {
            LedOn(i);
            SetTime(&TimeLeds[i],led_time);
            LedTaskStatus[i] = LED_DELAY;
        }
        else if(LedTaskStatus[i] == LED_DELAY)
        {
            if(CompareTime(&TimeLeds[i]))
            {
                LedOff(i);
                LedTaskStatus[i] = LED_STOP;
            }
        }
    }
}
